package com.kohler.blog.utils;

import java.util.Optional;
import java.util.regex.Pattern;
import java.util.stream.Stream;

/**
 * 对字符串的操作
 */
public class StringUtils {

    /**
     * 判断字符串是否为空白字符串
     *
     * @param str 字符串
     * @return true 空白字符串
     */
    public static boolean isBlank(String str) {

        return str == null || str.trim().length() == 0;
    }

    /**
     * 判断是否串是否空
     * @param str 字符串
     * @return 空字符串 true
     */
    public static boolean isEmpty(String str) {

        Optional<String> op = Optional.ofNullable(str);

        return op.isEmpty() || str.length() <= 0;
    }

    /**
     * 判断字符串是否为数字
     * @param str 字符串
     * @return true 是数字
     */
    public static boolean isNumeric(String str) {

//        if (str == null)
//            return false;
//        for (char c : str.toCharArray())
//            if (c < '0' || c > '9')
//                return false;
//        return true;

        boolean isNumeric = Stream.of(str)
                .filter(s -> s != null && !s.isEmpty())
                .filter(Pattern.compile("\\D").asPredicate())
                .mapToInt(Integer::valueOf)
                .boxed()
                .findAny()
                .isPresent();

        return isNumeric;
    }

}
